- 1400/03/06
- 0
- 374
عنوان خطا :NullReferenceException: Object reference not set to an instance of an object.
سلام در قسمت create user در دوره core مقدماتی زمانی که میخاهم Role های user را با استفاده از select list و view bag به view منتقل کنم ارور Null میدهد در صورتی که هم در دیتابیس رکورد ها وجود دارند و هم زمانی که role ها را از دیتا بیس واکشی می کنم با استفاده از برکپوینت متوجه شدم درست واکشی کردم و role ها برایم لیست می شود.
خدس میزنم مشکلم از طرف view باشد
کدهای view//
<div class="col-xl-4 col-lg-6 col-md-12 mb-1">
<fieldset class="form-group">
<label for="basicSelect">نقش</label>
<select class="form-control" id="Role" name="Role" asp-items="@ViewBag.Roles">
</select>
<p><small class="text-muted">سطح دسترسی کاربر مورد نظر را تعیین کنید</small></p>
</fieldset>
</div>
کدهای controller//
public IActionResult CreateUser()
{
ViewBag.Roles = new SelectList(_rolesService.Execute().Data, "Id", "Name");
return View();
کدهای کلاس //
public ResultDto<List<RolesDto>> Execute()
{
var roles = _context.Roles.ToList().Select(p => new RolesDto
{
RoleId = p.RoleId,
Name = p.RoleTittle
}).ToList();
return new ResultDto<List<RolesDto>>()
{
Data = roles,
IsSuccess = true,
Message = "",
};
- 1400/03/09
ViewBag.Roles = new SelectList(_rolesService.Execute().Data, "Id", "Name");
کد بالا را باید به شکل زیر تغییر بدهید
ViewBag.Roles = new SelectList(_rolesService.Execute().Data, "RoleId", "Name");
در لیستی که از سرویس دریافت می کنید شناسه رو با نام RoleId دریافت می کنید ولی در کنترلر اون رو با نام Id درخواست می کنید بخاطر همین هیچ دیتایی در viewbag قرار داده نمی شود.
پاسخی برای این باگ ارسال کنید
لطفا کدها را درون قطعه کد ارسال نمایید
برای ارسال پاسخ باید وارد حساب کاربری خود شوید
ورود به حساب کاربری